This relates to integrated circuits such as programmable integrated circuits.
Programmable integrated circuits such as programmable logic devices (PLDs) are well known in the art. Programmable integrated circuits can be programmed by a user to implement a desired custom logic function. In a typical scenario, a logic designer uses computer-aided design (CAD) tools to design a custom logic circuit. When the design process is complete, the tools generate configuration data. The configuration data is loaded into programmable integrated circuit memory elements to configure the device to perform the functions of the custom logic circuit. In particular, the configuration data configures programmable interconnects, programmable routing circuits, and programmable logic circuits in the programmable integrated circuits.
Conventional programmable integrated circuits perform routing with full un-biased connectivity, which assumes no relationship between the input signals. High level Hardware Description Language (HDL) such as OpenCL that can be used to program these integrated circuits can, however, be heavily datapath oriented. Conventional programmable integrated circuit do not take advantage of the regularity in datapath heavy designs. Designs having a high percentage of datapath logic are particularly inefficient when compared to a non-programmable implementation. On the other hand, designs with a low percentage of datapath logic exhibit wasted (unused) resources if the target architecture is designed so as to target the datapath regularity (e.g., arithmetic logic units connected with bus-based routing).
It is within this context that the embodiments below arise.